package com.healthcarex.hip.saas.security.dao;

import com.healthcarex.hip.saas.security.model.SysResource;
import com.healthcarex.hip.saas.mybatis.config.MyMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.cache.annotation.Cacheable;

import java.util.List;

/**
 * @author chenpan
 * @ClassName: ResourceDao
 * description:
 * @date 2018-04-02 16:36
 */
@Mapper
public interface ResourceDao extends MyMapper<SysResource> {

    List<SysResource> findRoleResource(Integer roleId);

    /**
     * 删除父节点，子节点变成顶级节点（根据实际业务调整）
     *
     * @param resourceIds
     */
    void changeToTop(List<String> resourceIds);

    List<SysResource> findUserPermissions(String userName);

    /**
     * 查找用户所拥有的某些应用的资源
     *
     * @param userName
     * @param appIds
     * @return
     */
    List<SysResource> findUserMenus(@Param("userName") String userName, @Param("appIds") List<Integer> appIds);

    /**
     * 查找系统资源
     *
     * @param resource
     * @return
     */
    List<SysResource> findResources(SysResource resource);

    /**
     * 根据角色编码查询权限
     *
     * @param roleCode
     * @return
     */
    List<SysResource> findResourcesByRole(String roleCode);
}
